package com.aididi.digui;

/**
 * @Auther: xuzexiang
 * @Date: 2018-10-31 0031 17:38
 * @Description:
 */
public class DiGuiDemo {
    public static void main(String[] args) {
        int n = Demo1.find30(7);
        System.out.println("第三十位数："+n);
        int[] nums = Demo1.getResult("1234");
        Demo1.showArray(nums);
        int jc = Demo1.jc(5);
        System.out.println(jc);

    }
}

class Demo1{
    /**
     * 斐波那契数列
     * 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少， 用递归算法实现。
     * @param n
     * @return
     */
    static int find30(int n){
        if(n<=2){
            return 1;
        }
        return find30(n-1)+find30(n-2);

    }

    /*
     * 将一整数逆序后放入一数组中（要求递归实现） Ex : 1234 变为 {4,3,2,1}
     */

    public static int[] getResult(String number){
               int[] result = new int[number.length()];
                int len = number.length();
                 for (int i = 0; i < number.length(); i++) {
                        result[i] = Integer.parseInt(number.charAt(len-1)+"");
                     len--;
                }
            return result;
            }


    /**
          * 打印数组函数
      * @param arr 待打印的数组
       */
    public static void showArray(int[] arr){
            System.out.print("{");
           for (int i = 0; i < arr.length; i++) {
                      if (i == arr.length-1) {
                              System.out.print(arr[i]);
                            }else {
                               System.out.print(arr[i] + ",");
                             }
                    }
                 System.out.println("}");
           }

    /**
     * 求一个数的阶乘
     */
    public static int jc(int n){
        if(n<=1 ){
            return 1;
        }else{
            return n*jc(n-1);
        }
    }



}

